package com.alibaba.citrus.ots.sales.plan.repository;

import com.alibaba.citrus.ots.sales.plan.dto.api.request.QueryPlanScItemExtendRequest;
import com.alibaba.citrus.ots.sales.plan.dto.api.request.QuerySalesPlanDetailRequest;
import com.alibaba.citrus.ots.sales.plan.repository.request.PageQueryPlanScItemExtendRepoRequest;
import com.alibaba.citrus.ots.sales.plan.repository.request.QueryPlanScItemExtendCountRequest;
import com.alibaba.citrus.ots.sales.plan.sdo.SalesPlanDetailSDO;
import com.alibaba.citrus.ots.sales.plan.sdo.SalesPlanPublishSDO;
import com.alibaba.citrus.ots.sales.plan.sdo.SalesPlanScItemExtendSDO;
import com.alibaba.cz.base.tool.page.PageResult;

import java.util.List;

/**
 * @author zls
 * @description:
 * @date 2021-10-15 10:43
 */
public interface SalesPlanScItemExtendRepository {

    /**
     * 分页查询计划货品
     *
     * @param pageQueryPlanScItemExtendRequest
     * @return
     */
    PageResult<List<SalesPlanScItemExtendSDO>> pageQueryPlanScItemExtendList(PageQueryPlanScItemExtendRepoRequest pageQueryPlanScItemExtendRequest);

    /**
     * 根据bizIds批量查询回复货品
     *
     * @param queryPlanScItemExtendRequest
     * @return
     */
    List<SalesPlanScItemExtendSDO> batchQueryPlanScItemExtend(QueryPlanScItemExtendRequest queryPlanScItemExtendRequest);

    /**
     * 编辑计划货品扩展
     *
     * @param salesPlanScItemExtendSDO
     * @return
     */
    Boolean editSalesPlanScItemExtend(SalesPlanScItemExtendSDO salesPlanScItemExtendSDO);

    /**
     * 批量保存计划货品扩展（回复货品量）
     *
     * @param requestList
     * @return
     */
    Boolean batchCreatePlanScItemExtend(List<SalesPlanScItemExtendSDO> requestList);

    Integer edit(SalesPlanPublishSDO salesPlanPublishSDO);

    SalesPlanDetailSDO querySalesPlanDetail(QuerySalesPlanDetailRequest querySalesPlanDetailRequest);

    Integer editSalesPlanDetail(SalesPlanDetailSDO salesPlanDetailSDO);

    /**
     * 查询发布记录数
     * @param request
     * @return
     */
    Integer queryPlanScItemExtendCount(QueryPlanScItemExtendCountRequest request);

    /**
     * 发布汇总小记
     * @param extendRepoRequest
     * @return
     */
    SalesPlanScItemExtendSDO queryPlanScItemExtendSum(PageQueryPlanScItemExtendRepoRequest extendRepoRequest);

    /**
     * 根据ID查询计划货品拓展
     * @param id
     * @return
     */
    SalesPlanScItemExtendSDO queryById(Long id);
}
